// url: https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/?envType=study-plan-v2&envId=top-interview-150
package interview_classic.array_or_str;

public class Solution80 {

    public static void main(String[] args) {
        int[] arr = new int[]{1, 1, 1, 2, 2, 3};
        int i = removeDuplicates(arr);

    }

    // 双指针
    public static int removeDuplicates(int[] nums) {
        int validLen = 0; // 必须从0开始 预防nums为空
        int count = 0; // 当前的统计个数
        int curNum = nums[0];
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == curNum) {
                // 相同
                if (count != 2) {
                    nums[validLen] = nums[i];
                    validLen++; // 有效长度加 1
                    count += 1;
                }
                // 超出就不管
            } else {
                // 不同 更新count 和 curNum
                curNum = nums[i];
                count = 1;
                nums[validLen] = nums[i];
                validLen++;
            }
        }
        return validLen;
    }
}
